Rust bindings to *nix APIs
Nix seeks to provide friendly bindings to various *nix platform APIs (Linux, Darwin, ...). The goal is to not provide a 100% unified interface, but to unify what can be while still providing platform specific APIs.
For many system APIs, Nix provides a safe alternative to the unsafe APIs exposed by the libc crate. This is done by wrapping the libc functionality with types/abstractions that enforce legal/safe usage.
As an example of what Nix provides, examine the differences between what is exposed by libc and nix for the gethostname system call:
// libc api (unsafe, requires handling return code/errno)
pub unsafe extern ;
// nix api (returns a nix::Result)
;
Requirements
Rust >= 1.9.0
Usage
To use nix
, first add this to your Cargo.toml
:
[]
= "0.8.0"
Then, add this to your crate root:
extern crate nix;
Contributing
Contributions are very welcome. Please See CONTRIBUTING for additional details.
License
Nix is licensed under the MIT license. See LICENSE for more details.